Distance or position determination

ABSTRACT

A device, method and computer program for determining the distance or position of a camera relative to a light source based on an image of that light source captured by the camera. The device comprises a coded light detection module for detecting a coded light signal modulated into the light from the light source. The coded light detection module is configured to retrieve one or more physical dimensions of the light source based on the coded light signal from that light source. Further, the device comprises an image analysis module configured to determine a distance of the camera from the light source, by performing a geometric perspective calculation to compare the one or more retrieved physical dimensions with one or more apparent dimensions of the image of the light source.

CROSS-REFERENCE TO PRIOR APPLICATIONS

This application is the U.S. National Phase application under 35 U.S.C. § 371 of International Application No. PCT/IB2014/062478, filed on Jun. 20, 2014, which claims the benefit of European Patent Application No. 13175088.7, filed on Jul. 4, 2013. These applications are hereby incorporated by reference herein.

TECHNICAL FIELD OF THE INVENTION

The present disclosure relates to determining the distance or position of a camera relative to a light source based on an image of that light source captured by the camera. In embodiments this may be combined with information on the geographic location of the light source in order to determine the location of the camera.

BACKGROUND OF THE INVENTION

There are several ways for a device such as a mobile phone or tablet to determine its location. Conventional techniques include the use of a satellite-based positioning system such as GPS (Global Positioning System), or trilateration based on signals communicated between the device and a plurality of base stations of a cellular network.

A further technique is described in WO 2013/016439. According to this, a plurality of light sources in a given location each broadcast a respective identifier in the form of a coded light signal modulated into the light emitted from that light source. A device such as a mobile phone can then use its in-built camera to read the identifier coded into the light from such a source, and this identifier can be used to look up coordinates of the light source. Thus the device can determine that it is roughly in the vicinity of this light source's coordinates. When multiple sources appear in the field of view of a camera, with all their identifiers known, then a form of triangulation can be performed to determine a more fine-grained location of the camera, and thereby the device.

SUMMARY OF THE INVENTION

Often a camera may only be able to see a single light source, e.g. when used indoors and facing upwards, and/or because a typical camera built into a device like a phone or tablet may only have a limited field of view. In such situations, this means that triangulation between light sources cannot be performed. It would be desirable to provide an alternative technique that does not necessarily rely on multiple different light sources being within view.

As disclosed herein, this may be achieved by using a coded light signal emitted by a light source to retrieve information about a physical size and/or shape of the light source. A perspective calculation can then be performed to determine the distance and potentially orientation of the camera relative to the light source, based on how the light source appears in the image captured by a camera relative to its actual dimension(s) as retrieved based on the coded light.

Hence according to one aspect disclosed herein, there is provided a device having an input for receiving image data captured by a camera, the image data comprising an image of a light source. The device comprises a coded light detection module for detecting a coded light signal modulated into the light received from the light source. The coded light detection module is configured to retrieve one or more physical dimensions of the light source based on the coded light signal from that light source. Further, the device comprises an image analysis module configured to determine a distance of the camera from the light source, by performing a geometric perspective calculation to compare the one or more retrieved physical dimensions with one or more apparent dimensions of the image of the light source.

Though multiple light sources could optionally be used, the technique does not rely on multiple light sources being within the field of view and can determine distance information based on any number of light sourced from one upwards.

In embodiments the one or more physical dimensions of a light source may be coded explicitly into the light emitted by that light source, in which case the retrieval comprises reading the one or more physical dimensions directly from the coded light signal. Alternatively, the coded light signal may comprise an identifier of the light source. In this case, the retrieval comprises reading the identifier and then using this to look up the one or more physical dimensions of the corresponding light source from a data store such as a database accessible via a network to which the device has access.

In further embodiments, the device may be configured to determine the orientation of the camera. Orientation refers to any measure of a direction in which the camera is facing relative to a suitable reference frame, preferably the direction from which the camera is facing the light source. The direction can be expressed for example in terms of an angle, two angles or a unit vector in a suitable directional reference frame. One example of a suitable directional reference frame is a 3D coordinate system where the positive Z axis faces upwards, and the positive X axis faces towards to the North on the horizon. Another example of a suitable directional reference frame is the 3D coordinate system that takes the geometric center of the lamp or lamp housing as the (0,0,0) origin coordinate, and two predetermined physical markers on the outside of the lamp or lamp housing as the points through which e.g. a (1,0,0) unit vector and a (0,1,0) unit vector point. Distance is a measure of the magnitude of the space between the camera and the light source in a coordinate system. In combination, orientation and distance give a measure of position of the camera, e.g. which may be expressed in terms of coordinates or a vector relative to a fixed point in a (directional) reference frame, either relative to the light source or translated to some other reference point or frame. Thus the image analysis module may be configured to use the determined distance and orientation together to determine the position of the camera relative to the light source in question. For example, the position relative to the light source could be determined as a coordinate in a 3D (x,y,z) coordinate system, with the lamp at position (0,0,0), units in meters, the negative Z axis pointing downwards, and the positive X axis pointing towards the North on the horizon.

In yet further embodiments, if the device also has knowledge of the light source's absolute location on a map or the globe, it may also determine the absolute location of the camera by combining the information on the light source's absolute location with the camera's position relative to the light source. This determination may also require knowledge of e.g. how a directional reference frame grounded in the geometry of the lamp is oriented with respect to the north/south/east/west/up/down reference frame of a map or globe.

If the orientation is used, as mentioned this may be the orientation relative to the light source, and in embodiments may also be determined in the geometric perspective calculation. It is possible that the light source has a symmetrical shape, e.g. symmetrical in the plane of a surface such as a ceiling on which the light source is to be mounted. For example the shape may have a rotational symmetry (order of rotational symmetry is two or more), or a mirror symmetry (line symmetry). This introduces ambiguity into the orientation calculation of based on perspective, e.g. a square looks the same from four different angles. Therefore in embodiments, a light effect may be introduced into the light emitted by the light source so as to break the symmetry, preferably an effect which is imperceptible to the human eye such as an asymmetrical coded light signal modulated into the light at high frequency. Alternatively the method used to resolve ambiguity in the orientation may be to determine absolute orientation of the viewpoint direction of the camera relative to a map or the globe, e.g. which may be determined by a magnetometer of the device.

In yet further embodiments, the image data may further comprise images of other objects, and the image analysis module may be configured to also include the images of the other objects in the geometric perspective calculation.

In a preferred application the device comprises the camera, the camera being housed in or physically mounted on the device, or otherwise substantially co-located and attached so as to move with the device. For example the device may be a mobile terminal such as a mobile phone or tablet. In such instances it may be assumed that the position or location of the device is substantially that of the camera. However, it is not excluded that the device is separate from the device, e.g. connected by a wire, wireless link or network, and that it desired to determine the orientation of the camera remotely.

According to further aspects disclosed herein, there may be provided a corresponding method and/or computer program product for performing the operations of the device disclosed herein.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of embodiments disclosed herein and to show how they may be put into effect, reference is made by way of example to the accompanying drawings in which:

FIG. 1 schematically illustrates a space such as a room comprising at least one luminaire;

FIG. 2 is a schematic block diagram of a luminaire employing coded light transmission;

FIG. 3 is a schematic block diagram of a device with camera for capturing an image of a luminaire;

FIG. 4 shows an image of a luminaire installed on a ceiling, overlaid with a schematic illustration of the perspective distorted shape of the luminaire as appearing in the image;

FIG. 5 schematically illustrates a perspective view of a luminaire installed in a space such as a room;

FIG. 6 gives a schematic top-down (or bottom-up) view of the luminaire of FIG. 5,

FIG. 7 schematically illustrates a light source with symmetry breaking sections,

FIG. 8 shows an image of a luminaire installed on a ceiling, overlaid with a schematic illustration of symmetry-breaking sections similar to those of FIG. 7;

FIG. 9 schematically illustrates another light source with symmetry breaking sections;

FIG. 10 schematically illustrates yet another light source with symmetry breaking sections;

FIG. 11 schematically illustrates a light source with alternative means for creating symmetry breaking sections; and

FIG. 12 schematically illustrates a light source with another alternative means for creating symmetry breaking sections.

DETAILED DESCRIPTION OF EMBODIMENTS

The following describes a technique by which a device with a camera can detect its location based on a combination of coded light detection with geometric analysis. There is also described a coded-light enabled luminaire which is particularly beneficial for coded-light based localization. The technique comprises decoding the coded light to obtain an identifier (ID) of the source, obtaining the physical dimensions associated with the light source, and using geometric perspective calculations to determine the position of the camera from the appearance of the light source in the camera image. In a preferred embodiment, coded light is used to make the light source appear asymmetric to the camera, while it retains is symmetric appearance to the human eye. As the light source is symmetric in appearance to human users while it emits coded light in an asymmetric way, this may improve its usefulness as a location beacon without disrupting the users' experience of the illumination. In embodiments, the teachings disclosed in the following are applicable even for the case where only a single coded light source with a symmetric appearance is in view of the camera.

FIG. 1 shows an example space or environment 5 in which embodiments disclosed herein may be deployed. For instance the space 5 may comprise one or more rooms and/or corridors of an office, home, school, hospital, museum or other indoor space; or an outdoor space such as a park, street, stadium or the like; or another space such as a gazebo or the interior of a vehicle. The space 5 is installed with a lighting system comprising one or more lighting devices 4 in the form of one or more luminaires. Three luminaires 4 i, 4 ii and 4 iii are shown for illustrative purposes, but it will be appreciated that other numbers may be present. The luminaires 4 may be implemented under central control or as separate, stand-alone units. Also present in the space 5 is a user terminal 6, preferably a mobile device such as a smart phone or tablet.

FIG. 2 gives a block diagram of a luminaire as may be used to implement one, some or all of the one or more luminaires 4. The luminaire 4 comprises a light source 12 comprising one or more light emitting elements such an LED, array of LEDs or fluorescent tube. The luminaire 4 also comprises a driver 10 coupled to the lighting source 12 and a controller 8 coupled to the driver 10. The controller 8 is configured to output a signal to the driver 10 in order to drive the light source 12 to emit a desired light output. The controller 8 may be implemented in the form of code stored on a computer readable storage medium or media and arranged to be executed on a processor comprising one or more processing units. Alternatively it is not excluded that some or all of the controller 8 is implemented in dedicated hardware circuitry or reconfigurable circuitry such as an FPGA. The controller 8 may be implemented locally at the luminaire 4 or at a central controller which may be shared with one or more other luminaires 4, or a combination of these. Generally the components 8, 10 and 12 may or may not be integrated into the same housing.

The controller 8 is configured to control the light emitted by the light source 12 to be modulated with a coded light component. Coded light refers to techniques whereby a signal is embedded in the visible light emitted by a luminaire. The light thus comprises both a visible illumination contribution for illuminating a target environment such as a room (typically the primary purpose of the light), and an embedded signal for providing information into the environment. To do this, the light is modulated at a certain modulation frequency or frequencies, typically a high enough frequency that the modulation is imperceptible to human vision. For example the modulation may take the form of a sinusoid, rectangular wave or other waveform. Typically the modulation frequency refers to the single or fundamental frequency of the modulation, i.e. the frequency of the period over which the waveform repeats. In some of the simplest cases, the signal may comprise a single tone modulated into the light from a given luminaire. In other cases, a signal comprising more complex data may be embedded in the light. For example using frequency keying, a given luminaire is operable to emit on two (or more) different modulation frequencies and to transmit data bits (or more generally symbols) by switching between the different modulation frequencies. In embodiments, each of a plurality of luminaires 4 in the same space 5 may be arranged to emit light modulated with a different respective coded light component acting as an identifier (ID) of the respective luminaire, so that the luminaire 4 from which the light came can be distinguished based on the ID. The IDs are unique at least amongst those luminaires in a certain space 5, e.g. in a certain room or building. In the case where the coded light component is a single tone, the different luminaires 4 may be arranged to emit light with different respective modulation frequencies which act as the IDs. Alternatively an ID could be encoded in data, e.g. using frequency keying. In yet further embodiments, alternative or additional data can be coded into the light.

FIG. 3 gives a block diagram of the mobile device 6. The device 6 comprises a camera 14 having a two-dimensional image capture element, and a coded light detection module 15 coupled to the camera 14. The coded light detection module 15 is configured to process signals captured by the image capture element and detect coded light components in the light from which the image was captured. The device 6 also comprises an image analysis module 16 coupled to the camera 14, configured to determine a position of the camera 14 relative to the light source 12 of one of the luminaires 4 i based on an image of the light source captured by that camera 14. Further, the device may comprise a location determination module 17 coupled to the image analysis module 16, configured to combine the position determined from the image analysis module with a location of the light source 4 i to determine an absolute location of the camera 14. This may be the absolute geographic location relative to the surface of the earth, or an absolute location on a map such as a map of a town or plan of a building. If the camera 14 is housed within the same casing as the device, or physically mounted on its casing so as to move with the device 6 (as opposed to just being attached by, say, a flexible cable), then the position or location of the camera 14 may be taken as that of the device 6.

The coded light detection module 15, image analysis module 16 and/or location determination module 17 may be implemented in the form of code stored on a computer readable storage medium or media and arranged to be executed on a processor comprising one or more processing units. Alternatively it is not excluded that some or all of these components are implemented in dedicated hardware circuitry or reconfigurable circuitry such as an FPGA. Generally the components 14, 15, 16 and/or 17 may or may not be integrated into the same housing. Also it is not excluded that the coded light detection module 15 is coupled (uniquely or additionally) to a coded light sensitive detector different from camera 14, for example a second camera also available to the mobile device 6, or a photodiode available to the mobile device 6, and this may be used as an alternative way to detect the coded light in the following.

The one or more luminaires 4 are configured to emit light into the space 5 and thereby illuminate at least part of that environment. A user of the mobile device 6 is able to point the camera 16 of the device towards the light source 12 of one of the luminaires 4, say the luminaire labeled 4 i by way of illustration. The camera 14 can thus capture an image of the light source 12. The light source 12 as described herein refers to a visible part of the luminaire 4 (e.g. 4 i) which comprises a light emitting element or light emitting elements. This will have a certain shape, e.g. a square, oblong or circle. For example this could be the shape of a single exposed light emitting element (e.g. shape of a fluorescent tube), the shape of an array of light emitting elements (e.g. an array of LEDs) or the shape of a diffusion material that the one or more light emitting elements are housed behind. When viewed by the camera 14 from a distance and typically also at an angle, then projected onto the two dimensional plane of the image capture element the shape of the light source 12 (its size and/or relative proportions) appears distorted according to the effect of perspective. For instance the light source may be viewed from below if mounted on a ceiling, e.g. see FIG. 4.

The image analysis module 16 can use this perspective distorted shape to determine the distance of the camera 14 from the light source 12 based on a geometric perspective calculation. The image analysis module 16 can also perform a geometric perspective calculation on the perspective distorted shape in order to determine the orientation of the camera 14 relative to the light source 12 (e.g. as a two or three dimensional angle or vector of a central axis of the camera's field of view). The combination of distance and orientation can be used to give a position of the camera 14 (e.g. a two dimensional position in the plane of the floor and/or ceiling, or even a three dimensional position). In embodiments this may be taken as the position of the device 6 itself. Details of suitable calculations for analyzing the perspective distorted appearance of geometric shapes such as squares, oblongs and circles will be known to a skilled person.

However, in order to perform this calculation the image analysis module 16 will require some information on one or more actual dimensions of the light source 12, in order to compare the actual dimensions with the dimensions as they appear in the captured image of the light source 12. According to the disclosure herein, this information may be obtained based on a coded light signal embedded in the light from the light source 12 of the luminaire 4 i being viewed by the camera 14.

In embodiments, this may be done based on the ID of the luminaire 4 (e.g. 4 i) embedded in the light from the respective light source 12. In this case the ID may be used to look up the one or more required dimensions of the respective light source 12 in a suitable data store comprising a database or look-up table mapping IDs to information on corresponding light source dimension(s). For example the data store may be pre-stored in local storage within the device 6 itself, or may be implemented on a network such as a local network or a wide area network like the Internet. The coded light detection module 15 of the device 6 processes the light samples captured by the camera in order to detect the ID coded into the light, and then accesses the data store using a suitable network interface such as a local wireless connection (e.g. Wi-Fi or Bluetooth) or cellular wireless connection (e.g. 3GPP). The coded light detection module 15 is thus able to submit the ID to the data store, receive back the information on the corresponding light source dimension(s), and passes this information to the image analysis module 16 for use in the perspective calculation.

In alternative or additional embodiments, the controller 8 may be configured to code the information on the one or more dimensions of the relevant light source 12 explicitly into the light emitted by the light source 12 of the respective luminaire 4 i. In this case, the coded light detection module 15 is able to retrieve the information directly from the light emitted by the relevant light source 12, and pass this information to the image analysis module 16 for use in the perspective calculation.

In either case, the device 6 is advantageously to obtain the actual dimension(s) of the light source 12 based on the same image of the same object that the camera is viewing in order to obtain the apparent, perspective distorted dimension(s).

The information on the one or more dimensions of the light source 12 may be sufficient to determine a distance of the camera 14 from that light source 12. For example, the information may comprise an indication that the light source 12 is circular and an indication of its radius, diameter or circumference. This would allow the image analysis module 16 to determine the distance from the light source 12. Similarly if the light source 12 is square then the distance can be determined from an indication of a side of the square and an indication that the shape is a square, or if the light source 12 is oblong the distance can be determined from an indication of two sides, or one side and a ratio of the sides, and indication that the shape is an oblong or rectangle. If pre-designed for a particular environment, the image analysis module 16 could even be pre-configured to assume the shape is, say, circular or square, or could be configured to estimate the type of shape from the perspective distorted image, in which cases as a bare minimum the image analysis module 16 need only be provided with a single measurement of the radius or edge for example.

However, it is noted that the shape of many light sources will have a symmetry. For example, the shape may have a rotational symmetry, i.e. an order of rotational symmetry of at least two. The order of rotational symmetry is the number of times in a shape would match or repeat itself when rotated through a full 360 degree circle about some axis, or equivalently viewed about a full 360 degrees around that axis. An order of one does not represent rotationally symmetry. Note also this does not mean the light source 12 actually has to be able to rotate, just that the shape would have this property if rotated, or equivalently viewed from different angles. The shape of the light source may also or alternatively have a mirror symmetry (also referred to as reflection symmetry or line symmetry). That is, the shape would be identical to itself if reflected or flipped about one or more lines of symmetry (note again, this does not necessarily mean the light source actually has to be physically flipped, just that the shape would have this property if flipped). In a typical application the light source 12 will be mounted on a surface such as ceiling or perhaps a wall, and the symmetry is a symmetry in the plane of this surface. If it is desired to know the orientation of the camera 14 relative to the light source, such symmetry will introduce an ambiguity into the calculation.

To illustrate this, if an oblong luminaire as shown in FIG. 4 emits coded light with its ID is embedded therein, a coded light detector with the viewpoint shown in FIG. 4 will be able to determine (from the ID) which luminaire it is near. Assuming the coded light is emitted substantially uniformly along the length of its light source, then as far as the coded light detector is concerned the luminaire will have 180-degree rotational symmetry. Similarly, a square luminaire would have 90-degree rotational symmetry or a circular luminaire would appear the same from any angle. So based on this information the detector could ‘know’ which luminaire it is near and potentially how far it is from the luminaire, but would not know which direction it is facing in. Typically, because the light source outline has a symmetric appearance, there are multiple candidate locations in the room from which the light source outline would appear this way. This is illustrated for the case of 90-degree rotational symmetry schematically in FIGS. 4, 5 and 6. Given the image data in FIG. 4 and the known dimension(s) of the light source 12, the detector can limit the number of possible locations from which it is viewing the light source to four locations (or orientations) in a room with respect to the light source 12, indicated by A, B, C, and D in FIGS. 5 (perspective view) and 6 (top-down view). For a mirror symmetric light source, generally there would be two positions that cannot be disambiguated, e.g. position A and B in FIG. 5.

Therefore without further modification, a coded light detector would need to have at least two such luminaires in its field of view in order to know its orientation from the image, or otherwise the orientation would have to be obtained by alternative means.

To address this, the present disclosure provides a light source which when off is symmetric, but when on emits lights asymmetrically. To achieve this, the light source may be divided into different sections which emit light differently in order to break the symmetry. Preferably the asymmetry is perceptible to the camera 14 but not to human vision. This may be implemented as a coded-light enabled luminaire with an asymmetric distribution of coded light.

FIG. 8 illustrates a coded light enabled luminaire—the light emitted from within the inner section (shown schematically by an inner, rectangular line superimposed on the image) is distinguishable from the rest of the light emitted by the luminaire.

For instance, in a luminaire with two or more tubes, the tubes may be arranged to emit mutually different coded light, or only one of the tubes emits coded light. Numerous other embodiments are possible, e.g. as discussed below. Thus the coded light detection module 15 can pass this information to the image analysis module 16, which can thus, because of the lack of symmetry, determine unambiguously the camera's orientation in the geometric perspective calculation—even when only one of the luminaires 4 i is in its field of view.

Consider the images of lamps in FIG. 4 and FIG. 8 as captured by an upwards-facing smart phone type camera. In both images, only a single (switched on) light source is visible in the field of view. These light sources emit an ID in the form of coded light. The location determination proceeds as follows.

The image analysis module 16 analyses the image to locate the light source 12. Also, the coded light detection module 15 decodes the coded light emitted by the light source 12 to obtain the ID of that light source. The coded light detection module 15 uses the ID to obtain geometric data, which may comprise the shape of the (visible parts of) the light source 12, and optionally the location of the source in the building. In an alternative embodiment, geometric data is encoded directly in the coded light. Either way, the coded light detection module 15 passes the geometric data to the image analysis module 16. The image analysis module 16 recognizes the shape in the image. For example, the outline can be recognized with edge detection, e.g. see the outer line superimposed on the image shown in FIG. 8.

By using the known size of the outline and matching it to the perspective-distorted shape as it appears in the image, the distance and angle to the light source can be determined. Typically, because the light source outline has a symmetric appearance, there are multiple candidate locations in the room from which the light source outline would appear this way. Here, the outline has 2 axes of symmetry, leading to four possible locations in the room A, B, C and D. See FIGS. 5 and 6.

To disambiguate between these possible positions, the image analysis module 16 uses the fact that the light source is equipped with a coded light generation means that breaks the symmetry. For example, as shown in FIG. 7 (bottom view of the light source), the light emitting part of the source is divided into two zones or sections, 1 and 2. Section 1 emits coded light, whilst section 2 does not, or emits another coded light code, or the same code but encoded in a way so that the two sections can be distinguished. To disambiguate, the location or shape of one section of the coded light emission is determined, e.g. see the inner line superimposed on the image shown in FIG. 8. This compared with other geometric aspects that have been determined. The end result is that the location of the camera with respect to the light source 12, and therefore the location of the device in the room (and by extension the building), can be unambiguously determined.

FIGS. 9 and 10 show alternative options for realizing asymmetric coded light in a light source with a circular emission opening, and therefore rotational symmetry. FIG. 9 schematically illustrates an inner circular section 1 offset from the center of the wider circular light source, i.e. having a different center. The second section 2 is the rest of the circular light source area not taken up by section 1. In FIG. 10, section 1 is a wedge or “pie slice” of the circle and section 2 is the rest of the circle. Similarly to the example of FIG. 7, one of the two sections 1, 2 emits coded light while the other does not, or the two sections emit differently coded light.

FIG. 11 gives another example. Here the underside of an LED luminaire is illustrated with the light diffusion material taken off and the individual LED elements shown as small circles 18. The LEDs are divided into different, asymmetric sections. The LEDs in zone 1 may be driven with coded light, while the remaining LEDs in zone 2 may be driven with ‘normal’ light or differently coded light.

In another example, FIG. 12 shows the underside of a fluorescent tube luminaire with a retrofit coded light emitter (small square) 19. By putting the emitter in an asymmetric location, this provides another way to implement asymmetric coded light output.

Once the distance and orientation of the camera 6 have been determined, the location determination module 17 may use this information to fine tune a location estimate of the camera 16 or device 6. For instance, the location determination module may be configured to obtain a rough estimate of the device's absolute location by obtaining the location of the luminaire 4 i being viewed. E.g. this may be done by detecting the ID of the luminaire 4 i from the coded light emitted by that luminaire's light source 12 and looking up the ID of the luminaire in a data store mapping IDs to luminaire coordinates, or the coordinates may be coded directly into the coded light emitted by that luminaire's light source. The position of the device 6 relative to the luminaire 4 i can then combined with the absolute location of the luminaire, e.g. adding a vector, to obtain the absolute location of the device 6.

Alternatively the method used to resolve ambiguity in the orientation as shown in FIG. 5 may be to determine absolute orientation of the viewpoint direction of the camera relative to a map or the globe, e.g. which may be determined by a magnetometer of the device. Suppose that geometric analysis of the image data gives four possible candidate unit vectors for the orientation relative to the light source, i.e. candidates for the direction from which the camera is facing the light source. The absolute orientation of the viewpoint direction of the camera could be represented as a unit vector V in the same coordinate system. To resolve the ambiguity, the four candidates can be compared to V. The candidate that points (roughly) in the opposite direction as the viewpoint direction V of the camera is the candidate that represents the real orientation, the real direction from which the camera is facing the light source. As a refinement, which may be useful to support cameras with a wide viewing angle, the viewpoint direction V, representing the central viewing axis of the camera, is first corrected into a viewpoint direction W, the vector that points from the lens of the camera directly towards the light source, by determining the position of the light source in the camera image, and making a geometric calculation based on how this position is offset from center of the camera image. Then, W is compared to the candidates.

Such techniques may for example find applications in location systems such as location based advertising, or indoor navigation by humans or robots.

It will be appreciated that the embodiments set out above have been described only by way of example.

Generally, the determination of distance from a luminaire and orientation relative to a luminaire may be used independently of one another or together. Also, the information does not have to be used to ultimately determine an absolute location of the camera 16 or device 6. For example, it may be useful just to know how close the camera 16 is to a light source, e.g. just to give a “hot/cold” estimate of how close the device 6 is from a target spot, or to measure a light output level of the light source 12 given the intensity measured at the camera and the distance from the source.

In another example, the distance could be determined based on the captured image of the light source 12 and coded light, but instead of determining the orientation relative to the light source 12 the orientation may be determined by some other, absolute means such as magnetometer incorporated in the device 6. For instance, in some embodiments a measure of orientation may be used but not necessarily measured relative to the light source. E.g. in some embodiments, knowing which luminaire a portable device is nearest to may give an approximate zone of a corridor or building that the device (and therefore its user) is in, and the device's compass may be used to give the direction the device is facing or aligned in relative to a map. On a screen of the device (e.g. smart phone or tablet), the user may be presented with a map with a highlighted zone or error circle showing his or her approximate position in terms of a zone and an arrow showing which way relative to the map the device is aligned.

In yet another example, if the light source is already of a physically asymmetric form or otherwise intrinsically asymmetric in appearance to the naked eye, then the location analysis need not require the specific use of an asymmetrically shaped or placed coded light sections.

In further embodiments, the analysis may also use other objects appearing in the image to further refine the geometric perspective calculation. For example it could use geometric features of other objects on the ceiling (e.g. ceiling panels with visible edges) in its calculations.

Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measured cannot be used to advantage. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems. Any reference signs in the claims should not be construed as limiting the scope. 

The invention claimed is:
 1. A rangefinder device comprising: an input for receiving image data captured by a camera, the image data comprising an image of a light source; and at least one hardware processor configured to: detect a coded light signal modulated into light from the light source, and retrieve one or more physical dimensions of the light source based on the coded light signal from said light source, and determine a distance of the camera from the light source, by performing a geometric perspective calculation to compare the one or more retrieved physical dimensions with one or more apparent dimensions of the image of the light source.
 2. The device of claim 1, wherein the one or more physical dimensions are communicated from the light source in the coded light signal, and the at least one hardware processor is configured to retrieve the one or more physical dimensions directly from the coded light signal.
 3. The device of claim 1, wherein the coded light signal comprises an identifier of the light source, and the at least one hardware processor is configured to retrieve the one or more physical dimensions by using the identifier to look up the one or more physical dimensions in a data store.
 4. The device of claim 1, configured to determine an orientation of the camera, wherein the distance and the orientation together give a position of the camera relative to the light source.
 5. The device of claim 4, wherein the at least one hardware processor is configured to determine the orientation of the camera relative to the light source as part of the geometric perspective calculation.
 6. The device of claim 4, wherein the light source is of a shape having a symmetry but emits light with a lighting effect that has an asymmetric lighting distribution, and the at least one hardware processor is configured to resolve ambiguity in the orientation based on said lighting effect.
 7. The device of claim 6, wherein said lighting effect is imperceptible to human vision and perceptible to the camera, said light having said symmetry that is visible to a human, whilst the asymmetric lighting distribution is detected by the camera.
 8. The device of claim 6, wherein said lighting effect comprises use of coded light to form said asymmetric lighting distribution.
 9. The device of claim 4, configured to determine the absolute orientation of a viewpoint direction of the camera relative to a predetermined coordinate system, wherein the distance and the absolute orientation of the viewpoint direction of the camera are used to determine the position of the camera.
 10. The device of claim 1, comprising a magnetometer configured to determine the absolute orientation of the viewpoint direction of the camera of the device relative to a predetermined coordinate system, which is then used to resolve an ambiguity in the orientation of the device with respect to the light source.
 11. The device of claim 4, wherein the at least one hardware processor is configured to obtain a geographic location of the light source, and to determine a geographic location of the camera based on the geographic location of the light source combined with the position of the camera relative to the light source.
 12. The device of claim 1, wherein the image data comprises an image of a single light source, the at least one hardware processor is configured to determine the distance of the camera from said single light source by performing the geometric perspective calculation to compare the one or more retrieved physical dimensions of the single light source with one or more apparent dimensions of the image of the single light source.
 13. The device of claim 1, wherein the image data further comprises images of other objects, and the at least one hardware processor is configured to also include the images of the other objects in the geometric perspective calculation.
 14. The device of claim 1, wherein the device comprises the camera.
 15. The device of claim 1, wherein the one or more retrieved physical dimensions is one or more physical dimensions of a shape of the light source.
 16. A computer program product embodied on a computer readable non-transitory storage medium and configured, when executed on a processor, to implement a rangefinder device and perform operations of: receiving image data captured by a camera, the image data comprising an image of a light source; detecting a coded light signal modulated into the light from the light source; retrieving one or more physical dimensions of the light source based on the coded light signal from said light source; and determining a distance of the camera from the light source, by performing a geometric perspective calculation to compare the one or more retrieved physical dimensions with one or more apparent dimensions of the image of the light source.
 17. The computer program product of claim 16, wherein the one or more retrieved physical dimensions is one or more physical dimensions of a shape of the light source. 